home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
ddj0897.zip
/
DYN401.ZIP
/
class
/
shortint.d
< prev
next >
Wrap
Text File
|
1996-06-26
|
2KB
|
137 lines
/*
*
* Copyright (c) 1993-1996 Algorithms Corporation
* 3020 Liberty Hills Drive
* Franklin, TN 37067
*
* ALL RIGHTS RESERVED.
*
*
*
*/
#include <math.h>
defclass ShortInteger : Number {
short int iVal;
};
cmeth gNewWithInt, <vNew> (int val)
{
object obj = gNew(super);
ivType *iv = ivPtr(obj);
iVal = (short int) val;
return(obj);
}
imeth int gHash()
{
double t;
t = .6125423371 * (unsigned) iVal;
t = t < 0.0 ? -t : t;
return (int) (BIG_INT * (t - floor(t)));
}
imeth int gCompare(obj)
{
short sv, ov;
ChkArg(obj, 2);
if (ClassOf(obj) != CLASS)
return gCompare(super, obj);
if ((sv=iVal) < (ov=ivPtr(obj)->iVal))
return -1;
else if (sv == ov)
return 0;
else
return 1;
}
imeth gStringRepValue()
{
return vSprintf(String, "%hd", iVal);
}
imeth char gCharValue()
{
return (char) iVal;
}
imeth short gShortValue()
{
return (short) iVal;
}
imeth unsigned short gUnsignedShortValue()
{
return (unsigned short) iVal;
}
imeth long gLongValue()
{
return (long) iVal;
}
imeth double gDoubleValue()
{
return (double) iVal;
}
imeth void *gPointerValue()
{
return (void *) &iVal;
}
imeth gChangeValue(val)
{
ChkArg(val, 2);
iVal = gShortValue(val);
return self;
}
imeth gChangeCharValue(int val)
{
iVal = (short) val;
return self;
}
imeth gChangeShortValue(int val)
{
iVal = (short) val;
return self;
}
imeth gChangeUShortValue(unsigned val)
{
iVal = (short) val;
return self;
}
imeth gChangeLongValue(long val)
{
iVal = (short) val;
return self;
}
imeth gChangeDoubleValue(double val)
{
iVal = (short) val;
return self;
}
/*
*
* Copyright (c) 1993-1996 Algorithms Corporation
* 3020 Liberty Hills Drive
* Franklin, TN 37067
*
* ALL RIGHTS RESERVED.
*
*
*
*/